A computer program listing in Appendix A on associated CD-ROM and duplicate CD-ROM having file name xe2x80x9c2386.1034-000 Appendix A-Source Code.txtxe2x80x9d, created Jul. 23, 2001, 46.2 Kbytes; the entire teachings inherent therein are incorporated herein by reference.
The present invention relates to graphical user interfaces, and more specifically, to a computer system employing a software application providing a specialized graphical user interface to efficiently manage, view and navigate relationships between objects having hierarchical relationships with one another, such as those in computer network management applications.
In computer systems, the way in which data is represented to a user is of great importance in many circumstances. Through graphical user interfaces (GUI""s), visual representations of data can improve a persons understanding of relationships and characteristics which exist intrinsically within the data. For example, data having fields that have one to one relationships with other fields can be effectively represented using a spreadsheet, with certain fields displayed in a left hand column, and other fields displayed across a top row. Data that is hierarchically related is not well suited for representation within a spreadsheet. Rather, a graphical tree-like structure may be used to represent hierarchical data. The tree depicts a top or parent node for the highest level of data, and has child nodes extending or depending from the parent node. Child nodes represent lower levels in the hierarchy and each successively lower level in the tree is populated with data from successively lower levels in the hierarchy. The overall tree can be displayed in a vertical or horizontal manner with nodes extending outward or downward at each successively lower level, beginning at the top level with the parent node.
There are many sources of hierarchically organized data, and certain systems are better represented hierarchically than others. Computer networks and individual computer systems generate data which can be effectively represented in a hierarchical manner.
In the case of a single computer system or data communications device, data stored in a directory on a disk is often hierarchically arranged using folders and sub-directories. Each directory of files and folders represents a separate level in the hierarchy. The hierarchical directory structure of a computer disk provides a convenient way to organize data and files based on characteristics such as file types or on the purpose for which the files and/or data is used.
Computer networks, on the other hand, typically comprise a combination of computer systems interconnected with a number of network communications devices such as modems, hubs, routers, bridges, switches and so forth. The way in which information is transferred over the computer network is based upon which data communications protocols are in operation and upon how each device is configured or managed. Typically the devices and computers on a single network are owned and managed by an individual entity or enterprise. By way of example, universities or companies typically own, operate, manage and control a network of computers and data communication devices which form a campus or corporate-wide data communications network. Such networks may be interconnected with other networks, such as those from government agencies, or other entities, to form a worldwide system of interconnected networks, such as the Internet.
An entire computer network can be broken down logically into various hierarchical levels. For instance, a high speed fiber optic link controlled by high speed routers can form the first level in a hierarchy. This top level network may interconnect many smaller regional networks associated with specific buildings, cities, or geographical areas, each of which represents a second level in the network hierarchy. Each regional network may interconnect specific purpose departmental networks representing a third level in the network hierarchy. Each departmental network may include many individual subnetworks of computers, terminals, printers, file and web servers, and so forth to form the fourth level of the hierarchy, and so forth. Each computer and data communications device may then be considered on an individual basis as the fifth level in the hierarchy and may include various internal devices or peripherals which form a sixth hierarchical level.
Due to the large amounts of hierarchical data maintained in individual computer systems and computer networks, these systems must be effectively managed or users will quickly begin to lose productivity. Computer systems management refers to the organization, storage and control of data within one or more computing devices. Computer network management refers to the ability to control the operation of computers and associated data communications devices on a network to provide efficient routing of data and network operation. Software applications have been developed for these hierarchical management tasks.
A typical computer systems management software application presents a graphical user interface to the user which displays information about the computer system. A widely known prior art computer management application called xe2x80x9cFile Managerxe2x80x9d, produced by Microsoft Corporation of Redmond Wash., can display hierarchical disk directory structure information in a horizontal tree-like manner. File manager is usually used for simple computer systems management tasks such as organizing files and directories. File Manager examines the file structure on a disk and displays directories and files which are at the same level in the hierarchy as small folder and file icons arranged in columns associated with that level. If files and/or sub-folders exist within other folders, File Manager displays file and sub-folder icons underneath and indented to the right of the parent folder icon in which those files and sub-folders exist. The icons are displayed as a tree using interconnected lines which form a path back to the uppermost folder in the directory. The indentation and positioning of file and folder icons provides a visualization of the hierarchical nature of the file system structure for the portion which is graphically displayed.
In the case of computers networks, network management software applications are used to display and control the data communication devices that form the network. Network management software executes on a management workstation coupled to the network and allows a network administrator to remotely control the operation of the network devices. Remote operation and management of devices is provided by standardized protocols such as the Simple Network Management Protocol (SNMP) and the Remote Monitoring (RMON) protocol. SNMP, for example, provides device agents which execute on each remotely located network device under management control. The device agents communicate with the network management software application. Each SNMP device agent can collect data related to the operation of the device and can report problems back to the management application. The management application can control each device, via instructions sent to the device agent. For instance, if a router in a network is experiencing congestion due to high data traffic, the agent in that router may be instructed by the network manager, using the network management application, to re-route certain data to an underutilized segment of the network. SNMP data is stored in a Management Information Base, or MIB, which can be hierarchically arranged.
Current network management applications present the structure of the managed network in a graphical tree-like manner, much like the computer system management applications (i.e., File Manager) discussed above. Essentially, the management software displays a graphical representation of the physical network as long lines with devices located at various locations. The image of a large computer network can grow to become quite lengthy, having hundreds, or even thousands of devices extending therefrom. The network manager can graphically navigate around the network by scrolling the image of the network left or right on the display using, for example, a mouse pointer to select left/right and up/down scroll bars. When an icon is displayed representing a network device of interest, the network manager can select this device. Device selection causes data associated with that device to be displayed. The data is typically device statistic data obtained from the SNMP MIB for that device.
Various problems are present in the ways in which prior art systems display and navigate through hierarchically arranged data. Since the data is represented more or less as a tree-like structure, only certain portions of the tree are displayable at any one time. For instance, in both the computer network management application and in the File Manager application noted above, only localized portions of a large hierarchy of data are visible to the user. In File Manager, if a folder icon contains many sub-files and folders, and this folder is selected, the display is re-drawn to show (i.e., to make visible) all of the sub-folders and files within the selected folder. In the network management case, a network manager often spends much of his or her time simply navigating around the image in order to arrive at the location of the device desired.
The problem with this is that once the desired object (i.e., networked device or file or other data) is arrived at, the user can no longer see a general representation of the folders, files, network devices, network structure or hierarchical data at the same level or above the parent folder, other than the data immediately surrounding the object displayed. That is, since the interface displays an extended file listing or a large network segment as a relatively flat object, the object and its neighboring objects are rarely visible at the same time. This is because the tree-like display or an extended graphical representation of a network segment only provides a limited amount of space for displaying various levels of hierarchical data, and there is little scalability to different levels of detail. In other words, once more than a few heavily populated folders or network segments are expanded via user selection, the user quickly becomes disoriented with respect to what area or location of the file system, network or other hierarchical data representation they are currently viewing.
Another problem with tree-like interfaces used to display hierarchical data is that navigation becomes difficult. Once a user is viewing a detailed list of the contents of one level of the hierarchy, for example, a large network segment, it is quite often the case that scrolling is required within the list of items (i.e., files or network nodes for example) in order to make visible the item of interest at that level or on that segment. Once the parent folder or graphical object (i.e., icon) containing the lower level items is scrolled off the display, the user must re-scroll back to where the parent folder is visible in order to navigate up to the next level in the hierarchy by re-selecting the parent object. alternatively, the user must condense one or more icons representing neighboring devices or folders, for example, in order to xe2x80x9cmake roomxe2x80x9d on the display for one or more devices of interest. Still further, to, for example, delve xe2x80x9cdownxe2x80x9d into a hierarchy having many levels, the user must select a device of interest at each level and xe2x80x9centerxe2x80x9d the level of that device, then find and select the next device at that level, and select and xe2x80x9centerxe2x80x9d the next level, and so on and so forth. In general, this problem requires many redundant selection, scrolling, finding, selection, scrolling, finding and deselecting operations just to find a particular item within the hierarchy of interest. Once found, the user oftentimes does not recall where they are currently in the hierarchy, and must return xe2x80x9cupxe2x80x9d to higher levels to gain a sense of direction within the graphical user interface.
The aforementioned problems combine to have a pronounced effect when using prior art hierarchical interfaces to perform tasks such as moving and copying objects from one level to another. For instance, if a file located at a lower level in the hierarchy is to be copied to another location elsewhere in the hierarchy, a typical interface supports the drag-and-drop concept. In drag-and-drop, the user should be able to find a file, select it, and while maintaining it in a selected state (i.e, with a mouse pointer), the user should be able to drag the file icon to another location and release selection of the item. The interface will interpret this action as an intent to copy the file or item to that location. However, in tree-like hierarchical interfaces, this becomes difficult due to the requirements of having to scroll from one location to another in the hierarchy in order to find the source and destination for an item. It is frequently the case that the source and destination cannot be arranged so as to both be visible on the screen at once. In such a case, an alternative means of copying the item must be used.
Similar problems exist for network management applications which attempt to display a network hierarchy as a tree-like structure. The network manager must scroll through a potentially lengthy graphical display of network communication lines in order to arrive at a device of interest. After selecting the device to view data associated with the device, and then reverting to the graphical view, the user may not recall the whereabouts of the current location within the network.
The present invention avoids these problems with prior art interfaces designed to represent hierarchical data. The invention provides a unique interface and navigation mechanism within the interface to effectively represent a large number of hierarchical levels while at the same time presenting the user with a sense of location within the hierarchy.
More specifically, the invention provides a computer system comprising at least one input device, an output device, a memory device, and a processing unit coupled to the input device, the output device and the memory device. The computer system in a preferred embodiment is a network management workstation. The processing unit executes a computer program stored in the memory device. Preferably, the computer program is a network management software application, such as the CiscoWorks2000  network management software manufactured by Cisco Systems, Inc. of San Jose, Calif. The computer program controls the output device to display a graphical user interface and controls the input device(s) to accept input to manipulate a view of objects displayed within the graphical user interface. The graphical user interface displays objects derived from hierarchically arranged data, wherein each object displayed is graphically scaled in size and proportion directly to the level of the hierarchy to which it relates and is positioned in relation to other objects within the hierarchy of the data. Due to the arrangement of objects in the GUI, the invention overcomes the aforementioned problems of prior art systems related to navigation and conceptualization of where the user is within the hierarchy of data represented.
Preferably, one or more child objects directly related on level below a parent object in the hierarchy will be positioned radially adjacent to and equidistantly from the parent object. The child nodes can be spaced equidistant from each other as well. The child objects are scaled smaller than the parent object from which they depend in the hierarchy thus indicating their presence on a lower hierarchical level. All objects on a level can be similarly colored, but can be differently colored from objects at different levels, thus further distinguishing hierarchical levels.
An embodiment of the interface described herein can be used, for example, by a network management graphical user interface monitoring program for use in computer network management, such as the CiscoView application manufactured by Cisco Systems, Inc. of San Jose, Calif. CiscoView provides a graphical user interface representing real time network data and devices in order to allow user to easily understand large volumes of network management data. The interface described herein can be used in such an application.
Also within the computer system, each object displayed on the graphical user interface is depicted graphically as being interconnected to other objects to which it is directly related to in a hierarchy of the data, so as to form a graphical representation of the hierarchical nature of each object as it relates to other objects. This interconnection represents data links in a computer network, for example. Also within the computer system, an object hierarchically related directly above another object is a parent object and is displayed larger, and an object hierarchically related directly below another object is a child object and is displayed adjacent to and smaller than the parent object. With these definitions, the input device may be used to select a child object on the graphical user interface and, in response, the computer program will generate a zoom-in view of that child object including any child objects related to that child object. This allows a user to easily navigate up and down and across levels within the hierarchy.
To zoom-in to a level, the graphical user interface displays a first view of individually selectable hierarchically arranged objects including a parent object and a plurality of child objects peripherally arranged about the parent object. Then, upon a zoom-in selection of a child object with the input device, the processing unit executes the computer program to transform the display of the graphical user interface to a zoomed-in view in which the parent object is relocated and proportionally increased in size to appear as a grand-parent object and the child object selected is relocated and proportionally increased in size to appear as a centrally located parent object. Furthermore, previously undisplayed child objects that are hierarchically related below the child object selected become displayed and peripherally arranged about the centrally located parent object. In this manner, each time the user changes levels in the hierarchy, new levels are exposed.
The system also provides a zoom-out capability wherein upon a zoom-out selection of the grand parent object with the input device, the processing unit executes the computer program to transform the display of the graphical user interface to a zoomed-out view. In the zoom-out view, child objects disappear from the graphical user interface and the first parent object is proportionally reduced in size to appear as a child object and the grand-parent object is relocated and proportionally reduced in size to appear as a centrally located parent object and the child object and other previously undisplayed child objects that are hierarchically related below the centrally located parent object become displayed and peripherally arranged about the centrally located parent object. Essentially, zoom-out is the reverse of zoom-in and allows the user to navigate up levels in the hierarchy.
The graphical user interface further includes a locale map providing a user with an indication of where in the hierarchy the objects exist that are currently on display in the graphical user interface. The locale map allows the user to move up and down any number of levels that are displayed in the locale map merely by selecting the node at the level desired. The GUI is then redrawn with the selected node as the centrally located node and displays child nodes, and any parent nodes, as noted above.
By providing an interface of this sort, any type of hierarchical data can be represented and explored in a fast and efficient manner without getting lost in the hierarchy.